package com.lantosec.hmrp.core.properties;

import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;

/**
 * 自动读取配置文件主类。
 * 将配置文件放到静态对象中。
 *
 * @author 杨成宇
 * @version 1.0
 * @date 2019/10/22
 */
@Component
@Log4j2
public class P {
    public static Page PAGE = null;
    public static Info INFO = null;
    public static List<SystemPropertie> SYSTEM_PROPERTIE_LIST = new ArrayList<>();

    @Autowired
    private Page pageConfigPropertiesAutowired;

    @Autowired
    private Info infoConfigPropertiesAutowired;



    @PostConstruct
    public void init() {
        PAGE = pageConfigPropertiesAutowired;
        INFO = infoConfigPropertiesAutowired;
        initSystemPropertie();
    }

    public void initSystemPropertie() {
        System.out.println("--------------------打印系统参数--------------------------------");
        setSystemPropertie("java.version", "Java运行时环境版本");
        setSystemPropertie("java.vendor", "Java运行时环境供应商");
        setSystemPropertie("java.vendor.url", "Java供应商的 URL");
        setSystemPropertie("java.home", "Java安装目录");
        setSystemPropertie("java.vm.specification.version", "Java虚拟机规范版本");
        setSystemPropertie("java.vm.specification.vendor", "Java虚拟机规范供应商");
        setSystemPropertie("java.vm.specification.name", "Java虚拟机规范名称");
        setSystemPropertie("java.vm.version", "Java虚拟机实现版本");
        setSystemPropertie("java.vm.vendor", "Java虚拟机实现供应商");
        setSystemPropertie("java.vm.name", "Java虚拟机实现名称");
        setSystemPropertie("java.specification.version", "Java运行时环境规范版本");
        setSystemPropertie("java.specification.vendor", "Java运行时环境规范供应商");
        setSystemPropertie("java.specification.name", "Java运行时环境规范名称");
        setSystemPropertie("java.class.version", "Java类格式版本号");
        setSystemPropertie("java.class.path", "Java类路径");
        setSystemPropertie("java.library.path", "加载库时搜索的路径列表");
        setSystemPropertie("java.io.tmpdir", "默认的临时文件路径");
        setSystemPropertie("java.compiler", "要使用的 JIT 编译器的名称");
        setSystemPropertie("java.ext.dirs", "一个或多个扩展目录的路径");
        setSystemPropertie("os.name", "操作系统的名称");
        setSystemPropertie("os.arch", "操作系统的架构");
        setSystemPropertie("os.version", "操作系统的版本");
        setSystemPropertie("file.separator", "文件分隔符");
        setSystemPropertie("path.separator", "路径分隔符");
        setSystemPropertie("line.separator", "行分隔符");
        setSystemPropertie("user.name", "用户的账户名称");
        setSystemPropertie("user.home", "用户的主目录");
        setSystemPropertie("user.dir", "用户的当前工作目录");
        System.out.println("-------------------------------------------------------------");
    }

    public static SystemPropertie setSystemPropertie(String key, String name) {
        String value = System.getProperty(key);
        System.out.println(String.format("%s [%s=%s]", name, key, value));
        return new SystemPropertie(key, name, value);
    }
}
